package com.yoda.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.yoda.vo.MenuVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 菜单表
 * </p>
 *
 * @author itcast
 * @since 2023-05-15
 */
@TableName("sys_menu")
@ApiModel(value = "SysMenu对象", description = "菜单表")
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class SysMenu implements Serializable {

    private static final long serialVersionUID = 1L;
    @ApiModelProperty("编号")
    private Integer id;

    @ApiModelProperty("父级编号")
    private Integer pid;

    @ApiModelProperty("路由名称")
    private String path;

    @ApiModelProperty("组件路径")
    private String component;

    @ApiModelProperty("菜单名称")
    private String title;

    @ApiModelProperty("图标")
    private String icon;

    @ApiModelProperty("是否在菜单中显示，0不显示，1显示")
    private Integer isShow;

    @ApiModelProperty("是否缓存，0否，1是")
    private Integer isCache;

    @ApiModelProperty("是否外联，0否，1是")
    private Integer isLink;

    @ApiModelProperty("重定向地址")
    private String redirect;

    @ApiModelProperty("创建时间")
    private LocalDateTime createDate;

    @ApiModelProperty("更新时间")
    private LocalDateTime updateDate;

    @ApiModelProperty("删除标记")
    private Integer delFlag;

    @ApiModelProperty("类型，1是菜单，2按钮")
    private Integer type;

    @ApiModelProperty("排序")
    private BigDecimal sort;

    @ApiModelProperty("权限标识")
    private String mark;

    @ApiModelProperty("是否为默认数据，null表示不是，1表示是")
    private String defaultData;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getComponent() {
        return component;
    }

    public void setComponent(String component) {
        this.component = component;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public Integer getIsShow() {
        return isShow;
    }

    public void setIsShow(Integer isShow) {
        this.isShow = isShow;
    }

    public Integer getIsCache() {
        return isCache;
    }

    public void setIsCache(Integer isCache) {
        this.isCache = isCache;
    }

    public Integer getIsLink() {
        return isLink;
    }

    public void setIsLink(Integer isLink) {
        this.isLink = isLink;
    }

    public String getRedirect() {
        return redirect;
    }

    public void setRedirect(String redirect) {
        this.redirect = redirect;
    }

    public LocalDateTime getCreateDate() {
        return createDate;
    }

    public void setCreateDate(LocalDateTime createDate) {
        this.createDate = createDate;
    }

    public LocalDateTime getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(LocalDateTime updateDate) {
        this.updateDate = updateDate;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public BigDecimal getSort() {
        return sort;
    }

    public void setSort(BigDecimal sort) {
        this.sort = sort;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    public String getDefaultData() {
        return defaultData;
    }

    public void setDefaultData(String defaultData) {
        this.defaultData = defaultData;
    }

    @Override
    public String toString() {
        return "SysMenu{" +
        "id=" + id +
        ", pid=" + pid +
        ", path=" + path +
        ", component=" + component +
        ", title=" + title +
        ", icon=" + icon +
        ", isShow=" + isShow +
        ", isCache=" + isCache +
        ", isLink=" + isLink +
        ", redirect=" + redirect +
        ", createDate=" + createDate +
        ", updateDate=" + updateDate +
        ", delFlag=" + delFlag +
        ", type=" + type +
        ", sort=" + sort +
        ", mark=" + mark +
        ", defaultData=" + defaultData +
        "}";
    }
}
